﻿/*
-----------------------------------
    Rodeo Game Engine

    Rodeo Core Module
    RenderManager.h - header file

    Copyright(c) Marcin Goryca
-----------------------------------
*/
#ifndef RODEO_CORE_RENDERMANAGER_H_
#define RODEO_CORE_RENDERMANAGER_H_

#ifndef RODEO_CORE_SINGLETON_H_
#include "core\singleton.h"
#endif    //RODEO_CORE_SINGLETON_H_

#ifndef RODEO_CORE_MASTERMANAGER_H_
#include "core\mastermanager.h"
#endif    //RODEO_CORE_MASTERMANAGER_H_

#ifndef RODEO_RENDERER_GL_GLRENDERER_H_
#include "renderer\gl\glrenderer.h"
#endif    //RODEO_RENDERER_GLRENDERER_H_

#ifndef RODEO_RENDERER_DX_DXRENDERER_H_
#include "renderer\dx\dxrenderer.h"
#endif

namespace rodeocore
{
class RenderManager : public Singleton<RenderManager>, public MasterManager
{
public:
    RenderManager(RendererType renderer);

    ~RenderManager();

    rodeorenderer::RendererInterface* getRenderer() const
    {
        return renderer_;
    }


private:
    RenderManager(){}

    // Copy constructor
    RenderManager(RenderManager& copy);

    // Copy operator
    RenderManager operator=(RenderManager& copy);

//==== MEMBERS ====//
    rodeorenderer::RendererInterface* renderer_;

};
}    //end of rodeocore namespace

#endif //RODEO_CORE_RENDERMANAGER_H_